]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
a11y: initialize atspi on demand
authorAlejandro Piñeiro <apinheiro@igalia.com>
Thu, 29 May 2014 12:12:16 +0000 (14:12 +0200)
committerAlejandro Piñeiro <apinheiro@igalia.com>
Fri, 20 Jun 2014 12:32:55 +0000 (14:32 +0200)
Only call atspi.init if needed. This is also more
coherent with the listener registration, that is
only done when needed.

https://bugzilla.gnome.org/show_bug.cgi?id=730118

js/ui/focusCaretTracker.js

index beaf2de0f2ebafe260874c12d61876ef57453763..265fcce712f30af0bf0f631ffe5d42aa34081a95 100644 (file)
@@ -32,11 +32,9 @@ const FocusCaretTracker = new Lang.Class({
     Name: 'FocusCaretTracker',
 
     _init: function() {
-        Atspi.init();
-        Atspi.set_timeout(250, 250);
-
         this._atspiListener = Atspi.EventListener.new(Lang.bind(this, this._onChanged));
 
+        this._atspiInited = false;
         this._focusListenerRegistered = false;
         this._caretListenerRegistered = false;
     },
@@ -48,12 +46,20 @@ const FocusCaretTracker = new Lang.Class({
             this.emit('caret-moved', event);
     },
 
+    _initAtspi: function() {
+        if (!this._atspiInited) {
+            Atspi.init();
+            Atspi.set_timeout(250, 250);
+            this._atspiInited = true;
+        }
+    },
+
     registerFocusListener: function() {
         if (this._focusListenerRegistered)
             return;
 
-        // Ignore the return value, we get an exception if they fail
-        // And they should never fail
+        this._initAtspi();
+
         this._atspiListener.register(STATECHANGED + ':focused');
         this._atspiListener.register(STATECHANGED + ':selected');
         this._focusListenerRegistered = true;
@@ -63,6 +69,8 @@ const FocusCaretTracker = new Lang.Class({
         if (this._caretListenerRegistered)
             return;
 
+        this._initAtspi();
+
         this._atspiListener.register(CARETMOVED);
         this._caretListenerRegistered = true;
     },